package tech.aistar.corejava.day02;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:交换俩个变量的值
 * @date 2019/7/16 0016
 */
public class ChangeDataDemo {
    public static void main(String[] args) {
        //1. 传统的方式 - 使用第三方变量
        int a = 10;
        int b = 20;

//        int temp = a;
//        a = b;
//        b = temp;

        //不允许使用第三方变量
        //总结:一个数连续异或同一个数俩次,结果是它本身!!!
       // a = a ^ b;//a = 10 ^ 20
       // b = a ^ b;//b = 10 ^ 20 ^ 20 = 10
       // a = a ^ b;//a = 10 ^ 20 ^ 10 = 20

        //自创的
        //b = 10^20^20 = 10
        b = a^(a=b)^b;

        System.out.println("a:"+a);//20
        System.out.println("b:"+b);//10

        System.out.println(-10>>>2);

        System.out.println(-10>>2);
    }
}
